package com.hl.qzzpbackend.model.dto.job;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 修改职位请求类
 * @author helong
 */

@Data
@ApiModel(value = "修改职位请求类")
public class JobUpdateRequest implements Serializable {

    /**
     * 职位id
     */
    @NotNull(message = "职位id不能为空")
    @Min(value = 1,message = "职位id不能小于1")
    @ApiModelProperty(value = "职位id")
    private Long id;

    /**
     * 公司id
     */
    @NotNull(message = "公司id不能为空")
    @Min(value = 1,message = "公司id不能小于1")
    @ApiModelProperty(value = "公司id")
    private Long companyId;

    /**
     * 岗位类型id
     */
    @NotNull(message = "岗位类型id不能为空")
    @Min(value = 1,message = "岗位类型id不能小于1")
    @ApiModelProperty(value = "岗位类型id")
    private Long positionTypeId;

    /**
     * 职位名称
     */
    @NotBlank(message = "职位名称不能为空")
    @ApiModelProperty(value = "职位名称")
    private String name;

    /**
     * 职位描述
     */
    @NotBlank(message = "职位描述不能为空")
    @ApiModelProperty(value = "职位描述")
    private String description;

    /**
     * 求职类型: 0-全职, 1-兼职, 2-实习
     */
    @NotNull(message = "求职类型不能为空")
    @ApiModelProperty(value = "求职类型")
    private Integer huntingType;

    /**
     * 学历要求: 0-不限, 1-大专, 2-本科, 3-硕士, 4-博士
     */
    @NotNull(message = "学历要求不能为空")
    @ApiModelProperty(value = "学历要求")
    private Integer education;

    /**
     * 经验要求: 0-应届生, 1-1-3年, 2-3-5年, 3-5年以上
     */
    @NotNull(message = "经验要求不能为空")
    @ApiModelProperty(value = "经验要求")
    private Integer experience;

    /**
     * 职位标签
     */
    @Size(min = 1,message = "职位标签不能为空")
    @ApiModelProperty(value = "职位标签")
    private List<String> tags;

    /**
     * 最低薪资
     */
    @NotNull(message = "最低薪资不能为空")
    @Min(value = 1,message = "最低薪资不能小于1")
    @ApiModelProperty(value = "最低薪资")
    private Integer minSalary;

    /**
     * 最高薪资
     */
    @NotNull(message = "最高薪资不能为空")
    @Min(value = 1,message = "最高薪资不能小于1")
    @ApiModelProperty(value = "最高薪资")
    private Integer maxSalary;

    /**
     * 审核状态: 0-未审核, 1-审核中 , 2-审核通过, 3-审核不通过
     */
    @NotNull(message = "审核状态不能为空")
    @ApiModelProperty(value = "审核状态")
    private Integer checkStatus;

    /**
     * 发布时间
     */
    @Future(message = "发布时间不能早于当前时间")
    @ApiModelProperty(value = "发布时间")
    private Date pubTime;

    /**
     * 结束时间
     */
    @Future(message = "结束时间不能早于当前时间")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    /**
     * 职位状态 0-未发布 1-已发布
     */
    @NotNull(message = "职位状态不能为空")
    @ApiModelProperty(value = "职位状态")
    private Integer jobState;

}